<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <script src="../js/vue.js"></script>
</head>

<body>
    <div id="root">
        <!-- 遍历数组 -->
        <h2>列表过滤</h2>
        <input type="text" v-model="keyWords" placeholder="请输入要查询的关键字？">
        <button @click="sortType = 2">年龄升序</button>
        <button @click="sortType = 1">年龄降序</button>
        <button @click="sortType = 0">原顺序</button>
        <ul>
            <li v-for="(item,index) in filPersons " :key="item.id">
                {{item.name}}-{{item.age}}-{{item.sex}}
            </li>
        </ul>

    </div>
    <script>
        Vue.config.productionTip = false;
        //用computed实现
        const vm = new Vue({
            el: "#root",
            data: {
                keyWords: "",
                sortType: 0,
                persons: [
                    { id: 0, name: "马冬梅", age: 58, sex: "女" },
                    { id: 1, name: "周冬雨", age: 26, sex: "女" },
                    { id: 2, name: "周杰伦", age: 31, sex: "男" },
                    { id: 3, name: "温兆伦", age: 41, sex: "男" }
                ]
            },
            computed: {
                filPersons() {
                    const arr = this.persons.filter((item) => {
                        return item.name.indexOf(this.keyWords) !== -1;
                    });
                    //判断是否需要排序
                    if(this.sortType){
                        arr.sort((p1,p2)=>{
                            return  this.sortType === 1?p2.age-p1.age:p1.age-p2.age;
                        });
                    };
                    return arr;
                }
            }
        })

   
    </script>
</body>

</html>